<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>PHP字符编码的要求</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="mbstring.overload.html">函数重载功能</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="ref.mbstring.html">多字节字符串 函数</a></div>
 <div class="up"><a href="book.mbstring.html">多字节字符串</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="mbstring.php4.req" class="chapter">
 <h1>PHP字符编码的要求</h1>

 <p class="para">
  以下类型的编码能够被 PHP 安全地使用。
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     单字节编码
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        ASCII兼容（ISO646 兼容），在 <em>00h</em> 到
        <em>7fh</em> 的范围内映射字符集。
       </span>
      </li>
     </ul>
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     多字节编码，
     <ul class="itemizedlist">
      <li class="listitem">
       <span class="simpara">
        ASCII兼容，在 <em>00h</em> 到
        <em>7fh</em> 的范围内映射字符集。
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        不使用 ISO2022 转义序列（escape sequences）。
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        单个字符以任意复合字节表达、不使用 <em>00h</em> 到 <em>7fh</em> 的值。
       </span>
      </li>
     </ul>  
    </p>
   </li>
  </ul>
 </p>
 <p class="para">
  有几个不太可能用 PHP 运行的字符编码例子。
  <div class="informalexample">
   <div class="example-contents">
<div class="cdata"><pre>
JIS, SJIS, ISO-2022-JP, BIG-5
</pre></div>
   </div>

  </div>
 </p>
 <p class="para">
  虽然用任何其中一个编码来编写 PHP 脚本可能无法工作，尤其是这些编码的字符串以标识符（identifier）和字符（literal）出现，
  但通过设置 <em>mbstring</em> 透明地过滤编码的函数，你几乎可以避免传入的 HTTP 查询使用这些编码。
 </p>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <p class="para">
   我们极度不赞成在内部编码中使用 SJIS、BIG5、CP936、CP949 和 GB18030，除非你熟悉解析器（parser）、扫描器（scanner）和该字符编码。
  </p>
 </p></blockquote>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <p class="para">
   当你用 PHP 连接到一个数据库，为了易用性和性能，推荐在数据库和<em>内部编码</em>使用一致的字符编码。
  </p>
  <p class="para">
   如果你使用的是 PostgreSQL，数据库里使用的编码和 PHP 里使用的编码可以是不同的，因为它支持字符集在前端和后端之间进行自动转换。
  </p>
 </p></blockquote>
</div>
<hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="mbstring.overload.html">函数重载功能</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="ref.mbstring.html">多字节字符串 函数</a></div>
 <div class="up"><a href="book.mbstring.html">多字节字符串</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
